Scroll to navigation

DIALOG(1) General Commands Manual DIALOG(1)

NOM

dialog - Afficher des boîtes de dialogue depuis des scripts shell

SYNOPSIS

dialog --clear
dialog --create-rc fichier
dialog --print-maxsize
dialog options-communes options-boîtes

DESCRIPTION

Dialog est un programme qui permet de présenter une grande variété de questions ou d'afficher des messages en utilisant des boîtes de dialogue depuis un script shell. Ces types particuliers de dialogues sont inclus (bien que tous ne soient pas nécessairement compilés dans dialog) :

calendar, checklist, form, fselect, gauge, infobox, inputbox, inputmenu, menu, msgbox (message), password, radiolist, tailbox, tailboxbg, textbox, timebox, et yesno (yes/no).

Vous pouvez mettre plusieurs dialogues dans un script :

-
Utilisez l'indicateur --and-widget pour forcer Dialog à traiter le dialogue suivant tant que vous n'avez pas appuyé sur ESC pour annuler, ou
-
Ajoutez simplement les indicateurs pour le dialogue suivant de manière à faire une chaîne. Dialog arrête l'enchaînement quand le code retour d'un dialogue est différent de zéro, Cancel (annuler) ou No (non) par exemple.

OPTIONS

Toutes les options commencent par « -- ». Un « -- » par lui-même est utilisé comme un échappement, par exemple, l'élément suivant sur la ligne de commande n'est pas traité comme une option.

Options Communes

Vous permet de contrôler les dimensions de la boîte en utilisant le dimensionnement automatique (specifiez 0 pour la largeur et la hauteur). Représente la largeur / la hauteur. La valeur par défaut est 9, qui indique 9 caractères de large pour chaque hauteur de ligne.
Indique une chaîne de caractères comme titre d'arrière-plan, placé en haut de l'écran.
Alarme sonore à chaque fois que l'écran est rafraîchi.
Un bip si l'entrée est interrompue, par un control/C par exemple.
Indique la position du coin supérieur gauche de la boîte de dialogue sur l'écran.
Modifie le libellé utilisé pour les boutons « Cancel » (en général on utilisera --cancel-label Annuler).
L'écran sera effacé à la sortie avec l'attribut screen attribute. Ceci ne devrait être utilisé que seul, sans autre option.
Interprète les séquences "\Z" dans le dialogue texte comme caractère permettant de sélectionner les couleurs et attributs vidéo : 0 à 7 sont les codes ANSI utilisés dans curses respectivement : 0=noir, 1=rouge, 2=vert, 3=jaune, 4=bleu, 5=magenta, 6=cyan 7=blanc. Le gras (ou sur brillance) est mis par 'b', son annulation par 'B'. L'inversion est mise par 'r', son annulation par 'R'. Le soulignement est mis par 'u', son annulation par 'U'. Les paramètres sont cumulatifs, ainsi "\Zb\Z1" produira un texte rouge en gras. Le retour à la normale se fait avec "\Zn".
Interprète les nouvelles lignes d'un texte dans un dialogue comme nouvelles lignes sur l'écran. Sinon, dialog ne coupera les lignes que lorsque nécessaire pour correspondre à la boîte texte. Vous pouvez contrôler les ruptures de ligne avec cette option, dialog coupera toute ligne qui serait trop longue pour la taille de la boîte. Sans cr-wrap, l'apparence de votre texte peut être formatée pour un meilleur aspect du code source de votre script sans affecter la manière dont il apparaîtra à l'écran.
Lorsque dialog gère la configuration d'exécution, ceci peut être utilisé pour créer un fichier de configuration exemple indiqué par fichier.
Prépositionne la valeur par défaut d'une boîte yes/no (oui/non) à no.
Positionne l'élément par défaut dans une boîte de menu. Normalement le premier élément est celui par défaut.
Remplace le libellé utilisé pour les boutons « EXIT ».
Affiche un bouton supplémentaire entre les boutons « Ok » et « Cancel ».
Remplace le libellé utilisé pour le bouton « Extra ». Note : pour la fonction inputmenu, la valeur par défaut est « Rename ».
Imprime le message d'aide sur la sortie d'erreur standard. Le message d'aide est imprimé si aucune option n'est précisée.
Montre un bouton d'aide après les boutons « Ok » et « Cancel », par exemple dans un checklist, une radiolist et une boîte menu. Si --item-help est aussi indiqué, à la sortie le code d'état sera le même que pour le bouton « Ok », et le texte de l'élément d'aide sera écrit sur la sortie d'erreur standard après l'indicateur « HELP ». Sinon, le code d'état indique que le bouton d'aide a été appuyé, et aucun message n'est imprimé.
Remplace l'étiquette utilisée pour les boutons « help ».
Ignore les options qui ne sont pas reconnues par dialog. Certaines, bien connues, comme « --icon » sont systématiquement ignorées, mais il s'agit du meilleur choix de compatibilité avec d'autres implémentations.
Interprète les données de marquage pour un checklist, un radiolist et une boîte menu en ajoutant une colonne qui est affichée dans la ligne d'en-tête de l'écran, pour l'item sélectionné.
Limite la saisie à une taille donnée. Si non indiqué, la limite est de 2000.
Suprime le bouton « Cancel » dans un checklist, un inputbox et une boîte de menu. Un script peut donc tester si l'utilisateur appuie sur la touche ESC pour annuler et quitter.
Normalement dialog convertit les tabulations en espaces et réduit les espaces multiples en espace simple qui doit être affiché dans une boîte de message, etc. Utilisez cette option pour annuler ce fonctionnement. Notez que dialog continuera à couper le texte, sujet de l'option --cr-wrap.
Indique à dialog de mettre la boîte tailboxbg en arrière-plan, imprime son process-id dans la sortie d'erreur standard. SIGHUP est invalidé pour ce process en arrière-plan.
Supprime l'ombrage qui serait dessiné à droite et en bas de chaque boîte de dialogue.
Remplace l'étiquette utilisée pour les boutons « OK ».
Redirige la sortie vers le descripteur de fichier indiqué. Beaucoup de scripts dialog écrivent dans la sortie d'erreur standard, mais les messages d'erreur peuvent aussi s'y inscrire, cela dépend de votre script.
Imprime la taille maximum des boîtes de dialogue, par exemple la taille de l'écran, dans la sortie standard d'erreur. Devrait être utilisé seul, sans d'autres options.
Imprime la taille de chaque boîte de dialogue dans la sortie d'erreur standard.
Imrime la version de dialog dans la sortie d'erreur standard. Devrait être utilisé seul, sans d'autres options.
Pour un checklist, envoie la sortie une ligne à chaque fois, sans mise entre guillemets. Ceci facilite l'examen par un autre programme.
Indique une chaîne de caractères qui séparera les éléments retournés sur la sortie d'erreur standard pour chaque fonction. Ceci est utilisé pour simplifier l'examen du résultat de dialog avec plusieurs fonctions. Si cette option n'est pas indiquée, le séparateur par défaut est le caractère de tabulation.
Dessine l'ombrage à droite et en bas de chaque boîte de dialogue.
Contrôle la taille résultante d'une boîte de dialogue avant d'essayer de l'utiliser, imprime la taille résultante si elle est plus grande que l'écran. (Cette option est obsolète, car tout appel de nouvelle fenêtre est contrôlé).
Attente (délais) en secondes après exécution de la boîte de dialogue.
Redirige les éléments retournés vers la sortie d'erreur standard. Ceci est la valeur par défaut, puisque, normalement, curses utilise l'écran pour écrire sur la sortie standard (stdout).
Redirige les éléments retournés vers la sortie standard.
Convertit chaque caractère de tabulation en un ou plusieurs espaces. Sinon, les tabulations sont rendues selon l'interprétation de la library curses.
Indique le nombre d'espaces occupés par le caractère de tabulation si l'option « --tab-correct » est indiquée. La valeur par défaut est 8.
Expiration du temps (sortie avec un code d'erreur) si aucune réponse de l'utilisateur n'est effectuée dans le nombre indiqué de secondes.
Spécifie une chaîne de caractères en titre ( title) à afficher en haut de la boîte de dialogue.
Élimine les espaces de début, les lignes successives et espaces répétés pour un message de texte.
Identique à "--print-version".

Options des boîtes

Toutes les boîtes de dialogue ont au moins trois paramètres :

l'intitulé ou le contenu de la boîte.
la hauteur de la boîte de dialogue.
la largeur de la boîte de dialogue.

Les autres paramètres dépendent du type de boîte.

Une boîte calendar affiche mois, jour et année dans des zones différentes. Si la valeur du jour, du mois ou de l'année manque ou est négative, la date courante est utilisée. Vous pouvez augmenter ou diminuer l'un ou l'autre en utilisant les flèches de direction. Utilisez, dans le style vi, les touches h, j, k et l pour vous déplacer dans les zones jour dans le mois. Utilisez la tabulation ou son inverse pour vous déplacer entre les différentes zones. Si l'année est zéro, la date courante est utilisée comme valeur initiale. Enfin, la date est restituée sous la forme jour/mois/année.
Une boîte checklist est similaire à une boîte menu ; elle a de multiples entrées présentées sous la forme d'un menu. Au lieu de choisir un élément parmi les différents choix, chaque élément peut être validé ou non par l'utilisateur. L'état initial (on/off) de chaque élément est spécifié par état. En sortie, une liste des chaînes marqueur de ces éléments est restituée sur stderr.
Le dialogue form affiche un formulaire constitué de libellés et de champs qui sont positionnés sur une fenêtre déroulante aux coordonnées données par le script. La longueur du champ longueur-du-champ et la longueur d'entrée longueur-de-l-entrée indiquent la taille possible du champ. La longueur du champ définit la taille affichée pour un champ sélectionné, tandis que le dernier définit la taille permise pour la donnée entrée dans le champ. Si longueur-du-champ est zéro, le champ correspondant ne peut être modifié. Si longueur-de-l-entrée est zéro, il est mis à la valeur de longueur-du-champ.

Utilisez les touches monter/descendre (ou control/N, control/P) pour vous déplacer entre les champs. Utilisez la tabulation pour vous déplacer entre les zones.

Le dialogue de sélection de fichier affiche une zone de texte dans laquelle vous pouvez écrire un nom de fichier (ou de répertoire), et au-dessus deux zones pour les répertoires et les noms de fichier.

Le chemin-de-fichier peut être un chemin complet, auquel cas les zones fichiers et répertoires afficheront le contenu du chemin et la zone texte contient le nom du fichier présélectionné.

Utilisez la tabulation ou les touches fléchées pour vous déplacer entre les zones. Dans la zone répertoires ou fichiers, utilisez les touches monter/descendre pour dérouler la sélection. Utilisez la barre d'espace pour copier la sélection dans la zone de texte.

En tapant un caractère imprimable quelconque, vous serez positionné dans la zone de texte, ce caractère fait défiler la liste des répertoires ou des fichiers de manière à pointer le nom le plus proche.

Utilisez la touche retour ou le bouton « OK » pour accepter la valeur actuelle de la zone de texte, ou le bouton « Cancel » pour annuler.

Une boîte gauge affiche une barre de progression en bas de la boîte. La barre indique le pourcentage. Les nouveaux pourcentages sont lus depuis l'entrée standard, un entier par ligne. La barre est mise à jour pour refléter chaque nouveau pourcentage. Si stdin est la chaîne « XXX », les lignes suivantes avec « XXX » sont utilisées pour une nouvelle invite. Ce dialogue s'arrête lorsque EOF est rencontré sur stdin.

La valeur percent indique le pourcentage initial à montrer dans la barre. Si non spécifié, il est à zéro.

Un boîte info est basiquement une boîte message. De toute manière, dans ce cas, dialog sortira immédiatement après avoir affiché le message pour l'utilisateur. L'écran n'est pas effacé quand dialog s'arrête, ainsi le message restera visible à l'écran jusqu'à un nouvel appel du script shell pour l'effacer ultérieurement. Ceci est utile lorsque vous souhaitez informer l'utilisateur d'une opération effectuée qui ne requiert pas son intervention pour continuer ou terminer.
Cette boîte est utile lorsque vous voulez poser une question qui nécessite une réponse de l'utilisateur sous forme d'une chaîne de caractères. Si init est indiqué il sera utilisé comme valeur initiale de la chaîne. En saisissant la réponse, il est possible d'employer la touche BACKSPACE pour corriger les erreurs de frappe. Si la chaîne saisie est plus longue que la zone, le champ sera déroulé. À la sortie, la chaîne sera envoyée sur stderr.
Une boîte inputmenu est très similaire à une boîte menu ordinaire. Il n'y a que peu de différences entre elles :
1.
Les entrées ne sont pas automatiquement centrées mais alignées à gauche.
2.
Un bouton supplémentaire (appelé Rename) est disponible pour renommer l'élément actuel lorsqu'il est choisi.
3.
Il est possible de renommer l'entrée actuelle en pressant le bouton Rename. Ensuite dialog écrira le résultat suivant sur stderr :

RENAMED <marqueur> <item>

Comme son nom l'indique, une boîte menu est une boîte de dialogue qui peut être utilisée pour présenter une liste de choix sous la forme d'un menu pour que l'utilisateur fasse une sélection. Les choix sont affichés dans l'ordre donné. Chaque entrée de menu consiste en une chaîne élément et une chaîne item. Le marqueur donne un nom symbolique à l'item pour le distinguer parmi les autres dans le menu. L'item est un nom court décrivant l'option que l'entrée représente. L'utilisateur peut se déplacer en utilisant les touche monter/descendre, la première lettre du marqueur comme touche de raccourci, l'une des touches 1-9. menu-height les éléments sont affichés dans le menu en même temps, mais peuvent être déroulés si d'autres éléments ne peuvent figurer en fonction de la taille de la boîte. Lorsque dialog se termine, le marqueur de l'élément choisi est imprimé sur stderr. Si l'option --help-button est donnée, le texte d'aide correspondant sera imprimé si l'utilisateur appuie sur ce bouton.
Une boîte message est très similaire à une boîte yes/no (oui/non). La seule différence entre une boîte message et une boîte yes/no est que la boîte message n'a que le seul bouton OK. Vous pouvez utiliser ce dialogue pour afficher un message quelconque. Après lecture du message, l'utilisateur peut appuyer sur la touche ENTER (retour chariot) qui permet au script shell de continuer ses opérations.
Cette boîte est similaire à une boîte inputbox, sauf que le texte que l'utilisateur entre n'est pas affiché. Ceci est particulièrement utile pour demander un mot de passe ou autre information sensible. Attention, si une valeur « init » est donnée, elle sera visible dans la table des process du système lors d'une requête d'interrogation. De même, il est perturbant pour l'utilisateur de lui donner la valeur secrète qu'il lui est demandé de fournir, alors même qu'il ne peut la voir. Pour ces raisons, l'usage de « init » est fortement décommandé.
Une boîte radiolist est similaire à une boîte menu. La seule différence est que vous pouvez indiquer quel élément est actuellement sélectionné en positionnant son état à on.
Affiche un texte depuis un fichier dans une boîte de dialogue, comme avec la commande « tail -f ».
Affiche un texte depuis un fichier dans une boîte de dialogue en tâche de fond, comme avec la commande « tail -f & ». Défilement gauche/droite en utilisant le style vi 'h' et 'l', ou les touches fléchées. Un '0' réinitialise le défilement.
Dialog traite la tâche de fond spécialement si d'autres fonctions sont utilisées (--and-widget) sur l'écran en concurence. Jusqu'à ce que ces fonctions se terminent (avec « OK » par exemple), dialog exécutera toutes les fonctions tailboxbg dans le même process, en procédant aux mises à jour. Vous pouvez utiliser la tabulation pour parcourir les fonctions disponibles à l'écran, et les fermer individuellement, par exemple en appuyant sur ENTER. Une fois toutes les fonctions non tailboxbg fermées, dialog fork une copie de lui-même en tâche de fond, et imrime son process-id si l'option --no-kill est donnée.
NOTE : D'anciennes versions de dialog forkent immédiatement et tentent de mettre à jour l'écran individuellement. En plus d'être peu performant, ça ne marche pas. Certains anciens scripts peuvent ne pas fonctionner correctement avec ce mode.
Une boîte textbox vous permet d'afficher le contenu d'un fichier texte dans une boîte de dialogue. C'est comme un simple visualiseur de fichier texte. L'utilisateur peut se déplacer dans le fichier en utilisant les touches habituelles de déplacement. Si les lignes sont trop longues pour pouvoir être affichées dans la boîte, les touches DROITE/GAUCHE peuvent être utilisées pour faire défiler le texte horizontalement. Vous pouvez aussi utiliser les touche du style vi h, j, k, l au lieu des touches curseur, et B ou N au lieu des touches du déplacement par page. Défilement monter/descendre en utilisant le style vi 'k' et 'j', ou les touches fléchées. Défilement gauche/droite en utilisant le style vi 'h' et 'l', ou les touches fléchées. Un '0' réinitialise le défilement gauche/droite. Pour plus de commodité, le style vi de recherche avant ou arrière est aussi utilisable.
Un dialogue est affiché qui vous permet de sélectionneur heure, minute et seconde. Si la valeur de l'heure, minute ou seconde est manquante ou négative, la date courante à la valeur correspondante est utilisée. Vous pouvez augmenter ou diminuer l'une d'elles un utilisant le touches fléchées. Utilisez la tabulation ou son inverse pour vous déplacer entre les zones. En sortie, le résultat est imprimé sous la forme heure:minute:seconde.
Une boîte de dialogue yes/no (oui/non) de la taille de height lignes par width colonnes sera affichée. La chaîne indiquée par text est affichée dans la boîte de dialogue. Si cette chaîne est trop longue pour tenir sur une ligne, elle sera automatiquement divisée en plusieurs lignes aux emplacements appropriés. La chaîne text peut aussi contenir la sous-chaîne "\n" ou des caractères newline `\n´ pour contrôler les ruptures de ligne explicitement. Cette boîte de dialogue est utile pour poser des questions qui nécessitent une réponse de l'utilisateur par oui ou non. La boîte de dialogue a un bouton Yes (oui) et un bouton No (non), que l'utilisateur peut sélectionner par la touche TAB.

CONFIGURATION D'EXÉCUTION

1.
Créez un fichier de configuration exemple par :


"dialog --create-rc <fichier>"

2.
Au lancement, dialog determine les paramètres à utiliser de la manière suivante :
si la variable d'environnement DIALOGRC est utilisée, sa valeur détermine le nom du fichier de configuration.
si le fichier en (a) n'est pas trouvé, utilise le fichier $HOME/.dialogrc comme fichier de configuration.
si le fichier en (b) n'est pas trouvé, essaye d'utiliser le fichier GLOBALRC déterminé au moment de la compilation, /etc/dialogrc par exemple.
si le fichier en (c) n'est pas trouvé, utilise les paramètres compilés par défaut.
3.
Éditez le fichier de configuration exemple et copiez-le quelque part où dialog pourra le trouver, comme indiqué au 2 ci-dessus.

ENVIRONNEMENT

Definissez cette variable si vous souhaitez spécifier le nom du fichier de configuration à utiliser.
Definissez l'une ou l'autre de ces variables pour changer le code retour pour Cancel (1), error (-1), ESC (255), Extra (3), Help (2), ou Ok (0). Normalement, les scripts shell traitent de -1 à 255.

FICHIERS

$HOME/.dialogrc
fichier de configuration par défaut

EXEMPLES

Les sources de dialog contiennent plusieurs exemples de la manière d'utiliser les différentes options et ce qu'elles produisent. Voyez donc le répertoire samples/ dans les sources.

DIAGNOSTICS

Le code de retour est sujet à modification par les variables d'environnement. Normalement, ce sont :

0
si dialog est quitté en appuyant sur le bouton « Yes » ou « OK » (oui ou OK).
1
si le bouton No ou Cancel (non ou annuler) est appuyé.
2
si le bouton Help (aide) est appuyé.
3
si le bouton Extra est appuyé.
-1
si des erreurs se produisent dans dialog ou que dialog est quitté en appuyant sur la touche ESC.

BOGUES

Peut- être.

AUTEURS

Savio Lam (lam836@cs.cuhk.hk) - version 0.3, "dialog"

Stuart Herbert (S.Herbert@sheffield.ac.uk) - patch for version 0.4

Pako (demarco_p@abramo.it) - version 0.9a, "cdialog",

Thomas Dickey (updates for 0.9b)

CONTRIBUTEURS

Tobias C. Rittweiler (tobrit@freebits.de)

TRADUCTION

F.A. Van Den Bussche (fa point vdb chez free point fr)

AVERTISSEMENT SUR LA TRADUCTION

Il est possible que cette traduction soit imparfaite ou périmée. En cas de doute, veuillez vous reporter au document original en langue anglaise fourni avec le programme.

24 septembre 2003